1. Field of the Invention
The present invention relates to reducing the amount of work required to customize application programs. In particular, it relates to a method and system for improving and extending the usage of built-in macro languages of applications used by end users for programming.
2. Description of the Related Art
Standardized application programs are commonly used in modern business environments. Examples of such programs include office solutions which include the basic software tools required for doing daily work of word or text processing, spreadsheet analysis, the use of relational databases, presentation programs, etc. People who use such application programs are referred to herein as end users.
Such, many application programs covering a number of particular aspects, such as e.g., sales tax calculation, salary administration, personnel administration, materials administration, etc., in the workflow of an enterprise, form the application program.
Since these programs are standardized programs intended for public use, the programs are not customized. That is, they are not adapted to the needs of a particular enterprise, firm or private person.
Thus, there is often a necessity for end users to customize an existing application to fit their specific needs. In this context, the end user is usually a developer. Therefore, “end user” and “developer” will be used as an equivalent throughout this document.
In order to carry out such customization work, the end user usually depends on the built-in macro languages of the application. Languages other than the built-in macro languages cannot be used. This, however, is a considerable disadvantage, because the customization work then requires a specific skill. Further, already existing code programmed in a different programming language cannot be re-used for this purpose and must be somehow ported or translated.
The present invention provides a very general solution and can be applied whenever the code of an application program itself may not be modified to make changes which require a recompilation of the application program itself.
Particular and arbitrarily chosen examples are applications like Lotus Notes or Microsoft Word. The built-in macro languages are Lotusscript or WordBasic, respectively. Using Microsoft Word, an end user does not have the ability to use, for example, Java, as a macro language. The same is true for all 4.x versions of Lotus Notes.
When an end user wants to use a language not included in the application, the end user is constrained to write a program, e.g., a C language program, compile it, link it and then call self-written program from within the existing application. The major disadvantage of this prior art approach is the separation of the self-written code and existing application. Seeing the best case, this is only an inconvenience for the end user to have code and application in different places, which makes maintenance more difficult. But in the majority of cases, in which a multitude of users have a multitude of customization programs this approach is not practical at all as the self written code is stored separate from the application.
One reason for this is deployment. The self-written program has to be installed anywhere the existing application is supposed to be used. Another reason is replication. If an existing application supports replication, only the objects belonging to this application are replicated, but no separated additional code or programs. Further, the performance of a network application server can be degraded by the additional task(s).
In an existing version of Lotus Notes, Java can be used as built-in macro language. When a Java program is executed, however, Java is restricted to run in specific programming areas, like the Notes Agents. This is, however, not advantageous, particularly in cases when the application program is installed in a network environment and is used by a multitude of users. In this situation, the performance of the application server is reduced remarkably.
Accordly, one object of the present invention is to improve the flexibility of application programs for the purpose of macroprogramming in order to give the end user the chance to use a language of his choice. A new possibility is intended to be offered to use other languages than the built-in macro languages of existing applications without changing the existing applications and without the requirement of installing specific additional programs to process the code written in the user-selected language.